Hybrid Kernel

From OSDev Wiki
Jump to navigation Jump to search

This article is a stub! This page or section is a stub. You can help the wiki by accurately contributing to it.

Kernel Designs
Models
Other Concepts

Design

A hybrid kernel is, as its name indicates, a hybrid between a Monolithic kernel and a Microkernel. Unlike a microkernel where everything takes place in user level servers and drivers, the designers of a hybrid kernel may decide to keep several components inside kernel and some outside. There are many motivations for doing so, such as performance, simplicity, and vendor lock-in (you cannot change components with custom components). Most hybrid kernels start as monolithic kernels and begin moving components into user land, primarily as security to support 3rd-party components and drivers which may be malicious or buggy.

An example of a hybrid kernel design may keep the VFS and bus controllers inside the kernel, but have the file system drivers and storage drivers as user mode programs. The advantage of this system that is you keep the performance and design principles of a monolithic kernel, but you allow untrusted users to load untrusted code for accessing their own storage devices.

Examples

  • Windows NT (including 2000, XP and above)
  • Mac OS X (XNU)
  • BeOS
  • Haiku
  • ReactOS
  • Syllable
  • DragonFly BSD
  • Plan 9